home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 February
/
EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso
/
earcd
/
editor
/
edt10.lha
/
Beispiele
/
Oberon
/
Deutsch
/
Compile_D.edt
next >
Wrap
Text File
|
1995-03-18
|
2KB
|
92 lines
/* compilieren */
OPTIONS RESULTS
'Busy' "übersetzen ..."
co="" /* init */
processor=GetClip("Oberon2Processor")
options=GetClip("Oberon2Options")
switches=GetClip("Oberon2Switches")
chk=GetClip("Oberon2Chk")
PARSE VAR switches newSym debug garbColl langExt smallCode smallData linkHunks compAll icons
PARSE VAR chk stackChk ovflChk rangeChk caseChk returnChk nilChk oddChk typeChk clearVars
IF ~newSym THEN co=co||"y"
IF debug THEN co=co||"g"
IF ~garbColl THEN co=co||"a"
IF ~langExt THEN co=co||"e"
IF smallCode THEN co=co||"m"
IF smallData THEN co=co||"d"
IF icons THEN co=co||"i"
IF ~stackChk THEN co=co||"s"
IF ~ovflChk THEN co=co||"v"
IF ~rangeChk THEN co=co||"b"
IF ~caseChk THEN co=co||"c"
IF ~returnChk THEN co=co||"r"
IF ~nilChk THEN co=co||"n"
IF oddChk THEN co=co||"o"
IF ~typeChk THEN co=co||"t"
IF ~clearVars THEN co=co||"z"
IF processor=1 THEN co=co||"1"
IF processor=2 THEN co=co||"2"
IF processor=3 THEN co=co||"28"
IF processor=4 THEN co=co||"3"
IF processor=5 THEN co=co||"38"
IF processor=6 THEN co=co||"4" /* Vermutung: bisher nicht implementiert */
'Get TEXTID'
id=RESULT
'Get NAME'
baseName=RESULT
IF RIGHT(baseName, 4) ~= ".mod" THEN DO
'ReqAction' '"Dieses ist kein Oberon-2|Quelltext."' "OK"
'BusyDone'
exit
END
'Get PATH'
path=RESULT
IF RIGHT(path, 1)~=":" THEN
tempName=path||"/MOD"||id||".mod"
ELSE
tempName=path||"MOD"||id||".mod"
SaveTemp tempName /* quick save as */
done=RESULT
IF ~done THEN DO
'ReqAction' '"Konnte Modul nicht|zwischenspeichern."' "OK"
BusyDone
exit
END
scriptName="T:compile"||id||".s"
done=Open(f, scriptName, "W")
IF ~done THEN exit
CALL WriteLn(f,"FailAt 100")
CALL WriteLn(f,"Stack 30000")
CALL WriteLn(f,"CD" '"'||path||'"')
CALL WriteLn(f,'OBERON:oberon >"CON:0/20/640/200/Modul Übersetzen/CLOSE/AUTO" -'||co options tempName)
CALL WriteLn(f,"IF EXISTS" tempName||"E")
CALL WriteLn(f," Copy" tempName||"E" baseName||"E")
CALL WriteLn(f," Delete >NIL:" tempName||"E")
CALL WriteLn(f,"ELSE")
CALL WriteLn(f," IF EXISTS" baseName||"E")
CALL WriteLn(f," Delete >NIL:" baseName||"E")
CALL WriteLn(f," ENDIF")
CALL WriteLn(f,"ENDIF")
CALL WriteLn(f,"Delete >NIL:" tempName)
CALL Close(f)
ADDRESS COMMAND "Execute >NIL:" scriptName
ADDRESS COMMAND "Delete >NIL:" scriptName
'BusyDone'
ADDRESS REXX "OBERON:rexx/Deutsch/GetFirstErr_D.edt"